{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# FOST-- Save And Load Model\n",
    "\n",
    "> Here's wind power data of a certain windmill. It contains various weather, turbine and rotor features. Data has been recorded from January 2018 till March 2020.</br>\n",
    "Link:https://www.kaggle.com/theforcecoder/wind-power-forecasting\n",
    "\n",
    "We are going to use FOST and Wind Power data to predict next several minutes. Also, we will experience saving the trained model for reuse directly next time without training again."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import fostool\n",
    "from fostool.pipeline import Pipeline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Download Data\n",
    "\n",
    "- If you have already downloaded data before, no need to run this block.\n",
    "\n",
    "You should have `FOST_example_data/Energy/graph.csv`,`FOST_example_data/Energy/train.csv` and `FOST_example_data/Turbine/train.csv` after running this block."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "--2021-11-11 14:56:34--  https://onedrive.live.com/download?cid=4E3B5BF06F46DFD5&resid=4E3B5BF06F46DFD5%21461&authkey=ACK4NyYumsXm8IY\n",
      "Resolving onedrive.live.com (onedrive.live.com)... 13.107.42.13\n",
      "Connecting to onedrive.live.com (onedrive.live.com)|13.107.42.13|:443... connected.\n",
      "HTTP request sent, awaiting response... 302 Found\n",
      "Location: https://ife64g.dm.files.1drv.com/y4m7cqy1MEaGnkkMJAd_OBMaVrnd0rtJLpI-CukA6Pk_CdG12uy6_SVVTRXjrlOXEqCas7CFb-ch-EDE8ngwMry7lXZpnHrGbX8kIOckyrhYskiKJtsmkhftzFWX1aa275feoZInpwaG2WGXQ_9N9r3Gr-yYQ2186K2L6t4k44AdZS0p3MpjV_flogsG0gfGYbvW6Rf0I02MpfXOvrFUTBowQ/FOST_example_data.zip?download&psid=1 [following]\n",
      "--2021-11-11 14:56:35--  https://ife64g.dm.files.1drv.com/y4m7cqy1MEaGnkkMJAd_OBMaVrnd0rtJLpI-CukA6Pk_CdG12uy6_SVVTRXjrlOXEqCas7CFb-ch-EDE8ngwMry7lXZpnHrGbX8kIOckyrhYskiKJtsmkhftzFWX1aa275feoZInpwaG2WGXQ_9N9r3Gr-yYQ2186K2L6t4k44AdZS0p3MpjV_flogsG0gfGYbvW6Rf0I02MpfXOvrFUTBowQ/FOST_example_data.zip?download&psid=1\n",
      "Resolving ife64g.dm.files.1drv.com (ife64g.dm.files.1drv.com)... 13.107.42.12\n",
      "Connecting to ife64g.dm.files.1drv.com (ife64g.dm.files.1drv.com)|13.107.42.12|:443... connected.\n",
      "HTTP request sent, awaiting response... 200 OK\n",
      "Length: 7891061 (7.5M) [application/zip]\n",
      "Saving to: ‘Dataset.zip’\n",
      "\n",
      "Dataset.zip         100%[===================>]   7.53M  10.2MB/s    in 0.7s    \n",
      "\n",
      "2021-11-11 14:56:39 (10.2 MB/s) - ‘Dataset.zip’ saved [7891061/7891061]\n",
      "\n",
      "Archive:  Dataset.zip\n",
      "   creating: FOST_example_data/Energy/\n",
      "  inflating: FOST_example_data/Energy/graph.csv  \n",
      "  inflating: FOST_example_data/Energy/train.csv  \n",
      "   creating: FOST_example_data/Turbine/\n",
      "  inflating: FOST_example_data/Turbine/train.csv  \n"
     ]
    }
   ],
   "source": [
    "!wget -O Dataset.zip \"https://onedrive.live.com/download?cid=4E3B5BF06F46DFD5&resid=4E3B5BF06F46DFD5%21461&authkey=ACK4NyYumsXm8IY\"\n",
    "\n",
    "!unzip Dataset.zip"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Preparing Data\n",
    "\n",
    "Load the training data from the .csv file, and set `lookahead` to 1000 minites."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_path = 'FOST_example_data/Turbine/train.csv'\n",
    "graph_path = None # graph is not exist in this case\n",
    "\n",
    "#predict for next 1000 minutes\n",
    "lookahead = 1000"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Date</th>\n",
       "      <th>ActivePower</th>\n",
       "      <th>AmbientTemperatue</th>\n",
       "      <th>BearingShaftTemperature</th>\n",
       "      <th>Blade1PitchAngle</th>\n",
       "      <th>Blade2PitchAngle</th>\n",
       "      <th>Blade3PitchAngle</th>\n",
       "      <th>ControlBoxTemperature</th>\n",
       "      <th>GearboxBearingTemperature</th>\n",
       "      <th>GearboxOilTemperature</th>\n",
       "      <th>...</th>\n",
       "      <th>GeneratorWinding2Temperature</th>\n",
       "      <th>HubTemperature</th>\n",
       "      <th>MainBoxTemperature</th>\n",
       "      <th>NacellePosition</th>\n",
       "      <th>ReactivePower</th>\n",
       "      <th>RotorRPM</th>\n",
       "      <th>TurbineStatus</th>\n",
       "      <th>Node</th>\n",
       "      <th>WindDirection</th>\n",
       "      <th>TARGET</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2017-12-31 00:00:00+00:00</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>G01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2017-12-31 00:10:00+00:00</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>G01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2017-12-31 00:20:00+00:00</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>G01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2017-12-31 00:30:00+00:00</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>G01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2017-12-31 00:40:00+00:00</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>G01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 22 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                        Date  ActivePower  AmbientTemperatue  \\\n",
       "0  2017-12-31 00:00:00+00:00          NaN                NaN   \n",
       "1  2017-12-31 00:10:00+00:00          NaN                NaN   \n",
       "2  2017-12-31 00:20:00+00:00          NaN                NaN   \n",
       "3  2017-12-31 00:30:00+00:00          NaN                NaN   \n",
       "4  2017-12-31 00:40:00+00:00          NaN                NaN   \n",
       "\n",
       "   BearingShaftTemperature  Blade1PitchAngle  Blade2PitchAngle  \\\n",
       "0                      NaN               NaN               NaN   \n",
       "1                      NaN               NaN               NaN   \n",
       "2                      NaN               NaN               NaN   \n",
       "3                      NaN               NaN               NaN   \n",
       "4                      NaN               NaN               NaN   \n",
       "\n",
       "   Blade3PitchAngle  ControlBoxTemperature  GearboxBearingTemperature  \\\n",
       "0               NaN                    NaN                        NaN   \n",
       "1               NaN                    NaN                        NaN   \n",
       "2               NaN                    NaN                        NaN   \n",
       "3               NaN                    NaN                        NaN   \n",
       "4               NaN                    NaN                        NaN   \n",
       "\n",
       "   GearboxOilTemperature  ...  GeneratorWinding2Temperature  HubTemperature  \\\n",
       "0                    NaN  ...                           NaN             NaN   \n",
       "1                    NaN  ...                           NaN             NaN   \n",
       "2                    NaN  ...                           NaN             NaN   \n",
       "3                    NaN  ...                           NaN             NaN   \n",
       "4                    NaN  ...                           NaN             NaN   \n",
       "\n",
       "   MainBoxTemperature  NacellePosition  ReactivePower  RotorRPM  \\\n",
       "0                 NaN              NaN            NaN       NaN   \n",
       "1                 NaN              NaN            NaN       NaN   \n",
       "2                 NaN              NaN            NaN       NaN   \n",
       "3                 NaN              NaN            NaN       NaN   \n",
       "4                 NaN              NaN            NaN       NaN   \n",
       "\n",
       "   TurbineStatus  Node  WindDirection TARGET  \n",
       "0            NaN   G01            NaN    NaN  \n",
       "1            NaN   G01            NaN    NaN  \n",
       "2            NaN   G01            NaN    NaN  \n",
       "3            NaN   G01            NaN    NaN  \n",
       "4            NaN   G01            NaN    NaN  \n",
       "\n",
       "[5 rows x 22 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "pd.read_csv(train_path).head() #you could see there are many missing values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Create Pipeline\n",
    "\n",
    "Create Pipeline and preprocess training data, you are encouraged to change params like `lookahead`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-11-10 16:20:29 fostool/task/config_handler.py 26 \\ - INFO - yaml handler load path: /home/xiaofan/anaconda3/envs/test/lib/python3.8/site-packages/fostool/config/default.yaml\n",
      "2021-11-10 16:20:30 fostool/dataset/data_utils.py 402 \\ - INFO - Detected Sample Frequency: <10 * Minutes>.\n",
      "2021-11-10 16:20:30 fostool/dataset/data_utils.py 426 \\ - INFO - 118224 Rows Before Time Reindex.\n",
      "2021-11-10 16:20:31 fostool/dataset/data_utils.py 428 \\ - INFO - 118224 Rows After Time Reindex.\n",
      "2021-11-10 16:20:31 fostool/dataset/data_utils.py 429 \\ - INFO - --------------------\n",
      "2021-11-10 16:20:31 fostool/dataset/data_utils.py 457 \\ - INFO - 118224 Rows Before Fill Missing.\n",
      "2021-11-10 16:20:34 fostool/dataset/data_utils.py 461 \\ - INFO - 118224 Rows After Fill Missing.\n",
      "2021-11-10 16:20:34 fostool/dataset/data_utils.py 462 \\ - INFO - --------------------\n"
     ]
    }
   ],
   "source": [
    "fost = Pipeline(lookahead=lookahead, train_path=train_path)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Training\n",
    "\n",
    "Train the models that fit your data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-11-10 16:20:38 fostool/tools/trainer.py 128 \\ - INFO - On epoch 0, train loss 0.5214098015656838, val loss 0.40440496802330017\n",
      "2021-11-10 16:20:38 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:38 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_213f_50, current best val loss 0.40440496802330017\n",
      "2021-11-10 16:20:39 fostool/tools/trainer.py 128 \\ - INFO - On epoch 1, train loss 0.38362601628670323, val loss 0.46582022309303284\n",
      "2021-11-10 16:20:39 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:40 fostool/tools/trainer.py 128 \\ - INFO - On epoch 2, train loss 0.30429018288850784, val loss 0.6851257681846619\n",
      "2021-11-10 16:20:40 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:40 fostool/tools/trainer.py 128 \\ - INFO - On epoch 3, train loss 0.22805454581975937, val loss 0.7447105050086975\n",
      "2021-11-10 16:20:40 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:41 fostool/tools/trainer.py 128 \\ - INFO - On epoch 4, train loss 0.1796583688029876, val loss 0.6186590194702148\n",
      "2021-11-10 16:20:41 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:42 fostool/tools/trainer.py 128 \\ - INFO - On epoch 5, train loss 0.1555830670090822, val loss 0.6034945249557495\n",
      "2021-11-10 16:20:42 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:42 fostool/tools/trainer.py 128 \\ - INFO - On epoch 6, train loss 0.13698228305348983, val loss 0.41134634613990784\n",
      "2021-11-10 16:20:42 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:43 fostool/tools/trainer.py 128 \\ - INFO - On epoch 7, train loss 0.1292790830708467, val loss 0.3954704701900482\n",
      "2021-11-10 16:20:43 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:43 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_213f_50, current best val loss 0.3954704701900482\n",
      "2021-11-10 16:20:43 fostool/tools/trainer.py 128 \\ - INFO - On epoch 8, train loss 0.12291400707685031, val loss 0.3878806233406067\n",
      "2021-11-10 16:20:43 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:43 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_213f_50, current best val loss 0.3878806233406067\n",
      "2021-11-10 16:20:44 fostool/tools/trainer.py 128 \\ - INFO - On epoch 9, train loss 0.11628996294278365, val loss 0.31806671619415283\n",
      "2021-11-10 16:20:44 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:44 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_213f_50, current best val loss 0.31806671619415283\n",
      "2021-11-10 16:20:44 fostool/tools/trainer.py 128 \\ - INFO - On epoch 10, train loss 0.10869917789330849, val loss 0.3154880702495575\n",
      "2021-11-10 16:20:44 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:44 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_213f_50, current best val loss 0.3154880702495575\n",
      "2021-11-10 16:20:45 fostool/tools/trainer.py 128 \\ - INFO - On epoch 11, train loss 0.11027426874408355, val loss 0.24235500395298004\n",
      "2021-11-10 16:20:45 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:45 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_213f_50, current best val loss 0.24235500395298004\n",
      "2021-11-10 16:20:46 fostool/tools/trainer.py 128 \\ - INFO - On epoch 12, train loss 0.10783509279672916, val loss 0.3781143128871918\n",
      "2021-11-10 16:20:46 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:46 fostool/tools/trainer.py 128 \\ - INFO - On epoch 13, train loss 0.1024647498360047, val loss 0.26939669251441956\n",
      "2021-11-10 16:20:46 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:47 fostool/tools/trainer.py 128 \\ - INFO - On epoch 14, train loss 0.09930768780983411, val loss 0.2572188973426819\n",
      "2021-11-10 16:20:47 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:47 fostool/tools/trainer.py 128 \\ - INFO - On epoch 15, train loss 0.09699201211333275, val loss 0.22985412180423737\n",
      "2021-11-10 16:20:47 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:47 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_213f_50, current best val loss 0.22985412180423737\n",
      "2021-11-10 16:20:48 fostool/tools/trainer.py 128 \\ - INFO - On epoch 16, train loss 0.09320562905990161, val loss 0.2238159477710724\n",
      "2021-11-10 16:20:48 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:48 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_213f_50, current best val loss 0.2238159477710724\n",
      "2021-11-10 16:20:48 fostool/tools/trainer.py 128 \\ - INFO - On epoch 17, train loss 0.09403071667139347, val loss 0.29251334071159363\n",
      "2021-11-10 16:20:48 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:49 fostool/tools/trainer.py 128 \\ - INFO - On epoch 18, train loss 0.09065592346283105, val loss 0.2767603099346161\n",
      "2021-11-10 16:20:49 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:50 fostool/tools/trainer.py 128 \\ - INFO - On epoch 19, train loss 0.08830924360797955, val loss 0.259941965341568\n",
      "2021-11-10 16:20:50 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:50 fostool/tools/trainer.py 128 \\ - INFO - On epoch 20, train loss 0.08640254948001641, val loss 0.16271480917930603\n",
      "2021-11-10 16:20:50 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:50 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_213f_50, current best val loss 0.16271480917930603\n",
      "2021-11-10 16:20:51 fostool/tools/trainer.py 128 \\ - INFO - On epoch 21, train loss 0.08487748641234177, val loss 0.17215007543563843\n",
      "2021-11-10 16:20:51 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:51 fostool/tools/trainer.py 128 \\ - INFO - On epoch 22, train loss 0.08266787273952594, val loss 0.23356927931308746\n",
      "2021-11-10 16:20:51 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:52 fostool/tools/trainer.py 128 \\ - INFO - On epoch 23, train loss 0.08192108714809784, val loss 0.34664782881736755\n",
      "2021-11-10 16:20:52 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:52 fostool/tools/trainer.py 128 \\ - INFO - On epoch 24, train loss 0.08181086469155091, val loss 0.3252795338630676\n",
      "2021-11-10 16:20:52 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:53 fostool/tools/trainer.py 128 \\ - INFO - On epoch 25, train loss 0.07763328560842918, val loss 0.32659560441970825\n",
      "2021-11-10 16:20:53 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:54 fostool/tools/trainer.py 128 \\ - INFO - On epoch 26, train loss 0.08088785066054417, val loss 0.1840842068195343\n",
      "2021-11-10 16:20:54 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:54 fostool/tools/trainer.py 128 \\ - INFO - On epoch 27, train loss 0.0768188786907838, val loss 0.2939102053642273\n",
      "2021-11-10 16:20:54 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:55 fostool/tools/trainer.py 128 \\ - INFO - On epoch 28, train loss 0.07530213004121414, val loss 0.35147252678871155\n",
      "2021-11-10 16:20:55 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:55 fostool/tools/trainer.py 128 \\ - INFO - On epoch 29, train loss 0.07318141597967881, val loss 0.3393331468105316\n",
      "2021-11-10 16:20:55 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:56 fostool/tools/trainer.py 128 \\ - INFO - On epoch 30, train loss 0.07244461359312901, val loss 0.3801690638065338\n",
      "2021-11-10 16:20:56 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:57 fostool/tools/trainer.py 128 \\ - INFO - On epoch 0, train loss 0.5039792886147132, val loss 0.4336933493614197\n",
      "2021-11-10 16:20:57 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:57 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_9023_50, current best val loss 0.4336933493614197\n",
      "2021-11-10 16:20:58 fostool/tools/trainer.py 128 \\ - INFO - On epoch 1, train loss 0.296625085748159, val loss 0.5668838620185852\n",
      "2021-11-10 16:20:58 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:20:59 fostool/tools/trainer.py 128 \\ - INFO - On epoch 2, train loss 0.20343898236751556, val loss 0.4405573308467865\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-11-10 16:20:59 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:01 fostool/tools/trainer.py 128 \\ - INFO - On epoch 3, train loss 0.1770654349372937, val loss 0.24171137809753418\n",
      "2021-11-10 16:21:01 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:01 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_9023_50, current best val loss 0.24171137809753418\n",
      "2021-11-10 16:21:02 fostool/tools/trainer.py 128 \\ - INFO - On epoch 4, train loss 0.1504317235488158, val loss 0.17765285074710846\n",
      "2021-11-10 16:21:02 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:02 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_9023_50, current best val loss 0.17765285074710846\n",
      "2021-11-10 16:21:03 fostool/tools/trainer.py 128 \\ - INFO - On epoch 5, train loss 0.13845664348739845, val loss 0.15872134268283844\n",
      "2021-11-10 16:21:03 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:03 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_9023_50, current best val loss 0.15872134268283844\n",
      "2021-11-10 16:21:04 fostool/tools/trainer.py 128 \\ - INFO - On epoch 6, train loss 0.129217450435345, val loss 0.14069801568984985\n",
      "2021-11-10 16:21:04 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:04 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_9023_50, current best val loss 0.14069801568984985\n",
      "2021-11-10 16:21:05 fostool/tools/trainer.py 128 \\ - INFO - On epoch 7, train loss 0.12618884444236755, val loss 0.11455156654119492\n",
      "2021-11-10 16:21:05 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:05 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_9023_50, current best val loss 0.11455156654119492\n",
      "2021-11-10 16:21:06 fostool/tools/trainer.py 128 \\ - INFO - On epoch 8, train loss 0.12026024294587281, val loss 0.11557749658823013\n",
      "2021-11-10 16:21:06 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:07 fostool/tools/trainer.py 128 \\ - INFO - On epoch 9, train loss 0.11698716964859229, val loss 0.10905838012695312\n",
      "2021-11-10 16:21:07 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:07 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_9023_50, current best val loss 0.10905838012695312\n",
      "2021-11-10 16:21:08 fostool/tools/trainer.py 128 \\ - INFO - On epoch 10, train loss 0.1130761865239877, val loss 0.12898024916648865\n",
      "2021-11-10 16:21:08 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:09 fostool/tools/trainer.py 128 \\ - INFO - On epoch 11, train loss 0.10892074411878219, val loss 0.08139966428279877\n",
      "2021-11-10 16:21:09 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:09 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_9023_50, current best val loss 0.08139966428279877\n",
      "2021-11-10 16:21:10 fostool/tools/trainer.py 128 \\ - INFO - On epoch 12, train loss 0.10746343691761677, val loss 0.14150691032409668\n",
      "2021-11-10 16:21:10 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:11 fostool/tools/trainer.py 128 \\ - INFO - On epoch 13, train loss 0.10508972349075171, val loss 0.08132900297641754\n",
      "2021-11-10 16:21:11 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:11 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_9023_50, current best val loss 0.08132900297641754\n",
      "2021-11-10 16:21:12 fostool/tools/trainer.py 128 \\ - INFO - On epoch 14, train loss 0.09943501078165494, val loss 0.09670377522706985\n",
      "2021-11-10 16:21:12 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:13 fostool/tools/trainer.py 128 \\ - INFO - On epoch 15, train loss 0.10174030595673965, val loss 0.09926549345254898\n",
      "2021-11-10 16:21:13 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:14 fostool/tools/trainer.py 128 \\ - INFO - On epoch 16, train loss 0.09570391762715119, val loss 0.0769272893667221\n",
      "2021-11-10 16:21:14 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:14 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_9023_50, current best val loss 0.0769272893667221\n",
      "2021-11-10 16:21:15 fostool/tools/trainer.py 128 \\ - INFO - On epoch 17, train loss 0.09238417991078816, val loss 0.07818283885717392\n",
      "2021-11-10 16:21:15 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:16 fostool/tools/trainer.py 128 \\ - INFO - On epoch 18, train loss 0.09141336438747552, val loss 0.08507367968559265\n",
      "2021-11-10 16:21:16 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:17 fostool/tools/trainer.py 128 \\ - INFO - On epoch 19, train loss 0.09249646703784282, val loss 0.12917989492416382\n",
      "2021-11-10 16:21:17 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:18 fostool/tools/trainer.py 128 \\ - INFO - On epoch 20, train loss 0.08586512907193257, val loss 0.10349352657794952\n",
      "2021-11-10 16:21:18 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:19 fostool/tools/trainer.py 128 \\ - INFO - On epoch 21, train loss 0.08701012512812248, val loss 0.10891661047935486\n",
      "2021-11-10 16:21:19 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:20 fostool/tools/trainer.py 128 \\ - INFO - On epoch 22, train loss 0.08722291714870013, val loss 0.08101923018693924\n",
      "2021-11-10 16:21:20 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:21 fostool/tools/trainer.py 128 \\ - INFO - On epoch 23, train loss 0.08111837678230725, val loss 0.09608783572912216\n",
      "2021-11-10 16:21:21 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:22 fostool/tools/trainer.py 128 \\ - INFO - On epoch 24, train loss 0.07910622685001446, val loss 0.09339187294244766\n",
      "2021-11-10 16:21:22 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:23 fostool/tools/trainer.py 128 \\ - INFO - On epoch 25, train loss 0.0758980824970282, val loss 0.07564029097557068\n",
      "2021-11-10 16:21:23 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:23 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_9023_50, current best val loss 0.07564029097557068\n",
      "2021-11-10 16:21:24 fostool/tools/trainer.py 128 \\ - INFO - On epoch 26, train loss 0.07704935824641815, val loss 0.07482104748487473\n",
      "2021-11-10 16:21:24 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:24 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_9023_50, current best val loss 0.07482104748487473\n",
      "2021-11-10 16:21:25 fostool/tools/trainer.py 128 \\ - INFO - On epoch 27, train loss 0.07659793874392143, val loss 0.08568546175956726\n",
      "2021-11-10 16:21:25 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:26 fostool/tools/trainer.py 128 \\ - INFO - On epoch 28, train loss 0.07176873403099868, val loss 0.09226773679256439\n",
      "2021-11-10 16:21:26 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:27 fostool/tools/trainer.py 128 \\ - INFO - On epoch 29, train loss 0.0698574883146928, val loss 0.09953375905752182\n",
      "2021-11-10 16:21:27 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:28 fostool/tools/trainer.py 128 \\ - INFO - On epoch 30, train loss 0.06778761543906651, val loss 0.08470813930034637\n",
      "2021-11-10 16:21:28 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:29 fostool/tools/trainer.py 128 \\ - INFO - On epoch 31, train loss 0.06641790256477319, val loss 0.12829793989658356\n",
      "2021-11-10 16:21:29 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:30 fostool/tools/trainer.py 128 \\ - INFO - On epoch 32, train loss 0.0678852263551492, val loss 0.09697144478559494\n",
      "2021-11-10 16:21:30 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:31 fostool/tools/trainer.py 128 \\ - INFO - On epoch 33, train loss 0.06629325965276131, val loss 0.13188716769218445\n",
      "2021-11-10 16:21:31 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:32 fostool/tools/trainer.py 128 \\ - INFO - On epoch 34, train loss 0.06489876027290638, val loss 0.1125587522983551\n",
      "2021-11-10 16:21:32 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:33 fostool/tools/trainer.py 128 \\ - INFO - On epoch 35, train loss 0.06269541898599038, val loss 0.09677623212337494\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-11-10 16:21:33 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:34 fostool/tools/trainer.py 128 \\ - INFO - On epoch 36, train loss 0.06155392441612024, val loss 0.11218820512294769\n",
      "2021-11-10 16:21:34 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:34 fostool/tools/trainer.py 128 \\ - INFO - On epoch 0, train loss 0.3939822820516733, val loss 0.39182478189468384\n",
      "2021-11-10 16:21:34 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:34 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_c633_50, current best val loss 0.39182478189468384\n",
      "2021-11-10 16:21:35 fostool/tools/trainer.py 128 \\ - INFO - On epoch 1, train loss 0.2094412732582826, val loss 0.25255268812179565\n",
      "2021-11-10 16:21:35 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:35 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_c633_50, current best val loss 0.25255268812179565\n",
      "2021-11-10 16:21:35 fostool/tools/trainer.py 128 \\ - INFO - On epoch 2, train loss 0.18821007127945238, val loss 0.2323639988899231\n",
      "2021-11-10 16:21:35 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:35 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_c633_50, current best val loss 0.2323639988899231\n",
      "2021-11-10 16:21:35 fostool/tools/trainer.py 128 \\ - INFO - On epoch 3, train loss 0.178911726635236, val loss 0.24387450516223907\n",
      "2021-11-10 16:21:35 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:35 fostool/tools/trainer.py 128 \\ - INFO - On epoch 4, train loss 0.17193174534119093, val loss 0.21178923547267914\n",
      "2021-11-10 16:21:35 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:35 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_c633_50, current best val loss 0.21178923547267914\n",
      "2021-11-10 16:21:35 fostool/tools/trainer.py 128 \\ - INFO - On epoch 5, train loss 0.16991539528736702, val loss 0.2102101892232895\n",
      "2021-11-10 16:21:35 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:35 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_c633_50, current best val loss 0.2102101892232895\n",
      "2021-11-10 16:21:36 fostool/tools/trainer.py 128 \\ - INFO - On epoch 6, train loss 0.16705031234484452, val loss 0.19531551003456116\n",
      "2021-11-10 16:21:36 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:36 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_c633_50, current best val loss 0.19531551003456116\n",
      "2021-11-10 16:21:36 fostool/tools/trainer.py 128 \\ - INFO - On epoch 7, train loss 0.14989430457353592, val loss 0.20116549730300903\n",
      "2021-11-10 16:21:36 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:36 fostool/tools/trainer.py 128 \\ - INFO - On epoch 8, train loss 0.14049745494356522, val loss 0.2166210114955902\n",
      "2021-11-10 16:21:36 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:36 fostool/tools/trainer.py 128 \\ - INFO - On epoch 9, train loss 0.13270853746395844, val loss 0.17202094197273254\n",
      "2021-11-10 16:21:36 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:36 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_c633_50, current best val loss 0.17202094197273254\n",
      "2021-11-10 16:21:36 fostool/tools/trainer.py 128 \\ - INFO - On epoch 10, train loss 0.12081163577162303, val loss 0.16413423418998718\n",
      "2021-11-10 16:21:36 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:36 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_c633_50, current best val loss 0.16413423418998718\n",
      "2021-11-10 16:21:37 fostool/tools/trainer.py 128 \\ - INFO - On epoch 11, train loss 0.10923111753968093, val loss 0.13668029010295868\n",
      "2021-11-10 16:21:37 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:37 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_c633_50, current best val loss 0.13668029010295868\n",
      "2021-11-10 16:21:37 fostool/tools/trainer.py 128 \\ - INFO - On epoch 12, train loss 0.10371291006986912, val loss 0.1393676996231079\n",
      "2021-11-10 16:21:37 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:37 fostool/tools/trainer.py 128 \\ - INFO - On epoch 13, train loss 0.0996975377202034, val loss 0.1438480019569397\n",
      "2021-11-10 16:21:37 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:37 fostool/tools/trainer.py 128 \\ - INFO - On epoch 14, train loss 0.09386406953518207, val loss 0.1144515797495842\n",
      "2021-11-10 16:21:37 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:37 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_c633_50, current best val loss 0.1144515797495842\n",
      "2021-11-10 16:21:37 fostool/tools/trainer.py 128 \\ - INFO - On epoch 15, train loss 0.0905016789642664, val loss 0.14555849134922028\n",
      "2021-11-10 16:21:37 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:38 fostool/tools/trainer.py 128 \\ - INFO - On epoch 16, train loss 0.08544140853560887, val loss 0.1304004192352295\n",
      "2021-11-10 16:21:38 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:38 fostool/tools/trainer.py 128 \\ - INFO - On epoch 17, train loss 0.08632313889952806, val loss 0.09993302077054977\n",
      "2021-11-10 16:21:38 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:38 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_c633_50, current best val loss 0.09993302077054977\n",
      "2021-11-10 16:21:38 fostool/tools/trainer.py 128 \\ - INFO - On epoch 18, train loss 0.08261642963267289, val loss 0.10660441219806671\n",
      "2021-11-10 16:21:38 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:38 fostool/tools/trainer.py 128 \\ - INFO - On epoch 19, train loss 0.08106940526228684, val loss 0.10536180436611176\n",
      "2021-11-10 16:21:38 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:38 fostool/tools/trainer.py 128 \\ - INFO - On epoch 20, train loss 0.07901227789429519, val loss 0.16250059008598328\n",
      "2021-11-10 16:21:38 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:39 fostool/tools/trainer.py 128 \\ - INFO - On epoch 21, train loss 0.07550063528693639, val loss 0.16220241785049438\n",
      "2021-11-10 16:21:39 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:39 fostool/tools/trainer.py 128 \\ - INFO - On epoch 22, train loss 0.07535623816343454, val loss 0.140420600771904\n",
      "2021-11-10 16:21:39 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:39 fostool/tools/trainer.py 128 \\ - INFO - On epoch 23, train loss 0.07501548500015186, val loss 0.12979550659656525\n",
      "2021-11-10 16:21:39 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:39 fostool/tools/trainer.py 128 \\ - INFO - On epoch 24, train loss 0.0688674825315292, val loss 0.12066255509853363\n",
      "2021-11-10 16:21:39 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:39 fostool/tools/trainer.py 128 \\ - INFO - On epoch 25, train loss 0.06823613881491698, val loss 0.14606450498104095\n",
      "2021-11-10 16:21:39 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:40 fostool/tools/trainer.py 128 \\ - INFO - On epoch 26, train loss 0.06829869331648716, val loss 0.14503709971904755\n",
      "2021-11-10 16:21:40 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:40 fostool/tools/trainer.py 128 \\ - INFO - On epoch 27, train loss 0.06486855776837239, val loss 0.16022063791751862\n",
      "2021-11-10 16:21:40 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:41 fostool/tools/trainer.py 128 \\ - INFO - On epoch 0, train loss 0.48671889854104894, val loss 0.45394423604011536\n",
      "2021-11-10 16:21:41 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:41 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_e28a_100, current best val loss 0.45394423604011536\n",
      "2021-11-10 16:21:41 fostool/tools/trainer.py 128 \\ - INFO - On epoch 1, train loss 0.2577043312944864, val loss 0.25025951862335205\n",
      "2021-11-10 16:21:41 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:41 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_e28a_100, current best val loss 0.25025951862335205\n",
      "2021-11-10 16:21:42 fostool/tools/trainer.py 128 \\ - INFO - On epoch 2, train loss 0.14226610017450234, val loss 0.05892954766750336\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-11-10 16:21:42 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:42 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_e28a_100, current best val loss 0.05892954766750336\n",
      "2021-11-10 16:21:43 fostool/tools/trainer.py 128 \\ - INFO - On epoch 3, train loss 0.12233184650540352, val loss 0.053112663328647614\n",
      "2021-11-10 16:21:43 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:43 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_e28a_100, current best val loss 0.053112663328647614\n",
      "2021-11-10 16:21:44 fostool/tools/trainer.py 128 \\ - INFO - On epoch 4, train loss 0.11396041512489319, val loss 0.07511460781097412\n",
      "2021-11-10 16:21:44 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:44 fostool/tools/trainer.py 128 \\ - INFO - On epoch 5, train loss 0.11042581380982149, val loss 0.054623864591121674\n",
      "2021-11-10 16:21:44 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:45 fostool/tools/trainer.py 128 \\ - INFO - On epoch 6, train loss 0.1030403350136782, val loss 0.045264799147844315\n",
      "2021-11-10 16:21:45 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:45 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_e28a_100, current best val loss 0.045264799147844315\n",
      "2021-11-10 16:21:45 fostool/tools/trainer.py 128 \\ - INFO - On epoch 7, train loss 0.09741827433830813, val loss 0.05462155118584633\n",
      "2021-11-10 16:21:45 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:46 fostool/tools/trainer.py 128 \\ - INFO - On epoch 8, train loss 0.09347659604329812, val loss 0.07437007129192352\n",
      "2021-11-10 16:21:46 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:47 fostool/tools/trainer.py 128 \\ - INFO - On epoch 9, train loss 0.09036209179382575, val loss 0.06173233687877655\n",
      "2021-11-10 16:21:47 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:47 fostool/tools/trainer.py 128 \\ - INFO - On epoch 10, train loss 0.08714426485331435, val loss 0.05879628658294678\n",
      "2021-11-10 16:21:47 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:48 fostool/tools/trainer.py 128 \\ - INFO - On epoch 11, train loss 0.08508393678225969, val loss 0.06124699488282204\n",
      "2021-11-10 16:21:48 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:49 fostool/tools/trainer.py 128 \\ - INFO - On epoch 12, train loss 0.08190144637697622, val loss 0.0882786437869072\n",
      "2021-11-10 16:21:49 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:50 fostool/tools/trainer.py 128 \\ - INFO - On epoch 13, train loss 0.07970620495708365, val loss 0.07404457032680511\n",
      "2021-11-10 16:21:50 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:51 fostool/tools/trainer.py 128 \\ - INFO - On epoch 14, train loss 0.07843946038108122, val loss 0.09009817242622375\n",
      "2021-11-10 16:21:51 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:52 fostool/tools/trainer.py 128 \\ - INFO - On epoch 15, train loss 0.07634325933299567, val loss 0.10228229314088821\n",
      "2021-11-10 16:21:52 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:53 fostool/tools/trainer.py 128 \\ - INFO - On epoch 16, train loss 0.0746487516321634, val loss 0.07913714647293091\n",
      "2021-11-10 16:21:53 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:55 fostool/tools/trainer.py 128 \\ - INFO - On epoch 0, train loss 0.4423091937052576, val loss 0.42387309670448303\n",
      "2021-11-10 16:21:55 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:55 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_c2de_100, current best val loss 0.42387309670448303\n",
      "2021-11-10 16:21:57 fostool/tools/trainer.py 128 \\ - INFO - On epoch 1, train loss 0.20243712985201887, val loss 0.15636923909187317\n",
      "2021-11-10 16:21:57 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:57 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_c2de_100, current best val loss 0.15636923909187317\n",
      "2021-11-10 16:21:59 fostool/tools/trainer.py 128 \\ - INFO - On epoch 2, train loss 0.13939261848205015, val loss 0.1040022224187851\n",
      "2021-11-10 16:21:59 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:21:59 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_c2de_100, current best val loss 0.1040022224187851\n",
      "2021-11-10 16:22:01 fostool/tools/trainer.py 128 \\ - INFO - On epoch 3, train loss 0.11867321106164079, val loss 0.07837985455989838\n",
      "2021-11-10 16:22:01 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:01 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_c2de_100, current best val loss 0.07837985455989838\n",
      "2021-11-10 16:22:03 fostool/tools/trainer.py 128 \\ - INFO - On epoch 4, train loss 0.10661635057706582, val loss 0.1143864244222641\n",
      "2021-11-10 16:22:03 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:04 fostool/tools/trainer.py 128 \\ - INFO - On epoch 5, train loss 0.10275521521505557, val loss 0.10327807068824768\n",
      "2021-11-10 16:22:04 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:06 fostool/tools/trainer.py 128 \\ - INFO - On epoch 6, train loss 0.09547407827094982, val loss 0.1920166164636612\n",
      "2021-11-10 16:22:06 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:08 fostool/tools/trainer.py 128 \\ - INFO - On epoch 7, train loss 0.09012621582338684, val loss 0.22367174923419952\n",
      "2021-11-10 16:22:08 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:10 fostool/tools/trainer.py 128 \\ - INFO - On epoch 8, train loss 0.08494033566430996, val loss 0.1688002049922943\n",
      "2021-11-10 16:22:10 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:12 fostool/tools/trainer.py 128 \\ - INFO - On epoch 9, train loss 0.081406987223186, val loss 0.25604158639907837\n",
      "2021-11-10 16:22:12 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:14 fostool/tools/trainer.py 128 \\ - INFO - On epoch 10, train loss 0.07972109160925213, val loss 0.20104598999023438\n",
      "2021-11-10 16:22:14 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:16 fostool/tools/trainer.py 128 \\ - INFO - On epoch 11, train loss 0.07678032999760226, val loss 0.19774100184440613\n",
      "2021-11-10 16:22:16 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:17 fostool/tools/trainer.py 128 \\ - INFO - On epoch 12, train loss 0.07516747066064884, val loss 0.25768664479255676\n",
      "2021-11-10 16:22:17 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:19 fostool/tools/trainer.py 128 \\ - INFO - On epoch 13, train loss 0.07109841939650084, val loss 0.2626004219055176\n",
      "2021-11-10 16:22:19 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:20 fostool/tools/trainer.py 128 \\ - INFO - On epoch 0, train loss 0.29041847900340434, val loss 0.17522574961185455\n",
      "2021-11-10 16:22:20 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:20 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_2ead_100, current best val loss 0.17522574961185455\n",
      "2021-11-10 16:22:20 fostool/tools/trainer.py 128 \\ - INFO - On epoch 1, train loss 0.149690233563122, val loss 0.18341101706027985\n",
      "2021-11-10 16:22:20 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:21 fostool/tools/trainer.py 128 \\ - INFO - On epoch 2, train loss 0.1333949561966093, val loss 0.12602558732032776\n",
      "2021-11-10 16:22:21 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:21 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_2ead_100, current best val loss 0.12602558732032776\n",
      "2021-11-10 16:22:21 fostool/tools/trainer.py 128 \\ - INFO - On epoch 3, train loss 0.12317371074306338, val loss 0.13382022082805634\n",
      "2021-11-10 16:22:21 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:22 fostool/tools/trainer.py 128 \\ - INFO - On epoch 4, train loss 0.11136403562206972, val loss 0.1451517790555954\n",
      "2021-11-10 16:22:22 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:22 fostool/tools/trainer.py 128 \\ - INFO - On epoch 5, train loss 0.10415132186914745, val loss 0.06928886473178864\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-11-10 16:22:22 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:22 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_2ead_100, current best val loss 0.06928886473178864\n",
      "2021-11-10 16:22:23 fostool/tools/trainer.py 128 \\ - INFO - On epoch 6, train loss 0.0960149945397126, val loss 0.08316070586442947\n",
      "2021-11-10 16:22:23 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:23 fostool/tools/trainer.py 128 \\ - INFO - On epoch 7, train loss 0.09028545649428117, val loss 0.09095515310764313\n",
      "2021-11-10 16:22:23 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:23 fostool/tools/trainer.py 128 \\ - INFO - On epoch 8, train loss 0.0861324067962797, val loss 0.093991719186306\n",
      "2021-11-10 16:22:23 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:24 fostool/tools/trainer.py 128 \\ - INFO - On epoch 9, train loss 0.0818167126884586, val loss 0.08426148444414139\n",
      "2021-11-10 16:22:24 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:24 fostool/tools/trainer.py 128 \\ - INFO - On epoch 10, train loss 0.07853000885561894, val loss 0.05249737203121185\n",
      "2021-11-10 16:22:24 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:24 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_2ead_100, current best val loss 0.05249737203121185\n",
      "2021-11-10 16:22:25 fostool/tools/trainer.py 128 \\ - INFO - On epoch 11, train loss 0.07650495006849892, val loss 0.07530619204044342\n",
      "2021-11-10 16:22:25 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:25 fostool/tools/trainer.py 128 \\ - INFO - On epoch 12, train loss 0.07107549092095149, val loss 0.0644344612956047\n",
      "2021-11-10 16:22:25 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:25 fostool/tools/trainer.py 128 \\ - INFO - On epoch 13, train loss 0.06809723651722858, val loss 0.06232993304729462\n",
      "2021-11-10 16:22:25 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:26 fostool/tools/trainer.py 128 \\ - INFO - On epoch 14, train loss 0.06514884325626649, val loss 0.06857447326183319\n",
      "2021-11-10 16:22:26 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:26 fostool/tools/trainer.py 128 \\ - INFO - On epoch 15, train loss 0.06318118374206518, val loss 0.06662412732839584\n",
      "2021-11-10 16:22:26 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:27 fostool/tools/trainer.py 128 \\ - INFO - On epoch 16, train loss 0.06059279322232071, val loss 0.06990287452936172\n",
      "2021-11-10 16:22:27 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:27 fostool/tools/trainer.py 128 \\ - INFO - On epoch 17, train loss 0.05908169509156754, val loss 0.07904676347970963\n",
      "2021-11-10 16:22:27 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:27 fostool/tools/trainer.py 128 \\ - INFO - On epoch 18, train loss 0.057107777677868544, val loss 0.083096943795681\n",
      "2021-11-10 16:22:27 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:28 fostool/tools/trainer.py 128 \\ - INFO - On epoch 19, train loss 0.05559501287184263, val loss 0.0812436118721962\n",
      "2021-11-10 16:22:28 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:28 fostool/tools/trainer.py 128 \\ - INFO - On epoch 20, train loss 0.053915663475268764, val loss 0.09479037672281265\n",
      "2021-11-10 16:22:28 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:30 fostool/tools/trainer.py 128 \\ - INFO - On epoch 0, train loss 0.5300616212919647, val loss 0.2147091180086136\n",
      "2021-11-10 16:22:30 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:30 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_cdbd_150, current best val loss 0.2147091180086136\n",
      "2021-11-10 16:22:32 fostool/tools/trainer.py 128 \\ - INFO - On epoch 1, train loss 0.45837684647709714, val loss 0.18271861970424652\n",
      "2021-11-10 16:22:32 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:32 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_cdbd_150, current best val loss 0.18271861970424652\n",
      "2021-11-10 16:22:34 fostool/tools/trainer.py 128 \\ - INFO - On epoch 2, train loss 0.4329991773063061, val loss 0.12037691473960876\n",
      "2021-11-10 16:22:34 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:34 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_cdbd_150, current best val loss 0.12037691473960876\n",
      "2021-11-10 16:22:36 fostool/tools/trainer.py 128 \\ - INFO - On epoch 3, train loss 0.36655541845396455, val loss 0.18422284722328186\n",
      "2021-11-10 16:22:36 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:38 fostool/tools/trainer.py 128 \\ - INFO - On epoch 4, train loss 0.19668498167804643, val loss 0.11600712686777115\n",
      "2021-11-10 16:22:38 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:38 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_cdbd_150, current best val loss 0.11600712686777115\n",
      "2021-11-10 16:22:40 fostool/tools/trainer.py 128 \\ - INFO - On epoch 5, train loss 0.13472451488761342, val loss 0.09075714647769928\n",
      "2021-11-10 16:22:40 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:40 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_cdbd_150, current best val loss 0.09075714647769928\n",
      "2021-11-10 16:22:42 fostool/tools/trainer.py 128 \\ - INFO - On epoch 6, train loss 0.11562732826260959, val loss 0.09983284026384354\n",
      "2021-11-10 16:22:42 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:43 fostool/tools/trainer.py 128 \\ - INFO - On epoch 7, train loss 0.10032648154917885, val loss 0.10871240496635437\n",
      "2021-11-10 16:22:43 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:45 fostool/tools/trainer.py 128 \\ - INFO - On epoch 8, train loss 0.09349632496927299, val loss 0.08962956070899963\n",
      "2021-11-10 16:22:45 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:45 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_cdbd_150, current best val loss 0.08962956070899963\n",
      "2021-11-10 16:22:47 fostool/tools/trainer.py 128 \\ - INFO - On epoch 9, train loss 0.08949260048422158, val loss 0.08760429918766022\n",
      "2021-11-10 16:22:47 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:47 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_cdbd_150, current best val loss 0.08760429918766022\n",
      "2021-11-10 16:22:49 fostool/tools/trainer.py 128 \\ - INFO - On epoch 10, train loss 0.08380168303847313, val loss 0.09407749772071838\n",
      "2021-11-10 16:22:49 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:51 fostool/tools/trainer.py 128 \\ - INFO - On epoch 11, train loss 0.08224556098381679, val loss 0.14604048430919647\n",
      "2021-11-10 16:22:51 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:52 fostool/tools/trainer.py 128 \\ - INFO - On epoch 12, train loss 0.08146266157136244, val loss 0.08987714350223541\n",
      "2021-11-10 16:22:52 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:54 fostool/tools/trainer.py 128 \\ - INFO - On epoch 13, train loss 0.07719067411095488, val loss 0.10489274561405182\n",
      "2021-11-10 16:22:54 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:56 fostool/tools/trainer.py 128 \\ - INFO - On epoch 14, train loss 0.07508745117514741, val loss 0.10942348092794418\n",
      "2021-11-10 16:22:56 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:58 fostool/tools/trainer.py 128 \\ - INFO - On epoch 15, train loss 0.07206632153076284, val loss 0.08308396488428116\n",
      "2021-11-10 16:22:58 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:22:58 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_cdbd_150, current best val loss 0.08308396488428116\n",
      "2021-11-10 16:23:00 fostool/tools/trainer.py 128 \\ - INFO - On epoch 16, train loss 0.07057501521765017, val loss 0.11585114151239395\n",
      "2021-11-10 16:23:00 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:02 fostool/tools/trainer.py 128 \\ - INFO - On epoch 17, train loss 0.07043270817866512, val loss 0.09227875620126724\n",
      "2021-11-10 16:23:02 fostool/tools/trainer.py 130 \\ - INFO - ------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-11-10 16:23:03 fostool/tools/trainer.py 128 \\ - INFO - On epoch 18, train loss 0.06910589030560325, val loss 0.10814906656742096\n",
      "2021-11-10 16:23:03 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:05 fostool/tools/trainer.py 128 \\ - INFO - On epoch 19, train loss 0.06476902311631277, val loss 0.10044016689062119\n",
      "2021-11-10 16:23:05 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:07 fostool/tools/trainer.py 128 \\ - INFO - On epoch 20, train loss 0.0645456023368181, val loss 0.06586336344480515\n",
      "2021-11-10 16:23:07 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:07 fostool/tools/trainer.py 136 \\ - INFO - For model KRNNModel_cdbd_150, current best val loss 0.06586336344480515\n",
      "2021-11-10 16:23:09 fostool/tools/trainer.py 128 \\ - INFO - On epoch 21, train loss 0.0650883696827234, val loss 0.10231371968984604\n",
      "2021-11-10 16:23:09 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:11 fostool/tools/trainer.py 128 \\ - INFO - On epoch 22, train loss 0.06184996781395931, val loss 0.082346610724926\n",
      "2021-11-10 16:23:11 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:13 fostool/tools/trainer.py 128 \\ - INFO - On epoch 23, train loss 0.060066056748231254, val loss 0.10462719947099686\n",
      "2021-11-10 16:23:13 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:14 fostool/tools/trainer.py 128 \\ - INFO - On epoch 24, train loss 0.057997998507583845, val loss 0.09594093263149261\n",
      "2021-11-10 16:23:14 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:16 fostool/tools/trainer.py 128 \\ - INFO - On epoch 25, train loss 0.05806640871599609, val loss 0.10778063535690308\n",
      "2021-11-10 16:23:16 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:18 fostool/tools/trainer.py 128 \\ - INFO - On epoch 26, train loss 0.05658702311270377, val loss 0.102825827896595\n",
      "2021-11-10 16:23:18 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:20 fostool/tools/trainer.py 128 \\ - INFO - On epoch 27, train loss 0.05560541591223549, val loss 0.08883119374513626\n",
      "2021-11-10 16:23:20 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:22 fostool/tools/trainer.py 128 \\ - INFO - On epoch 28, train loss 0.055199245100512224, val loss 0.0982724204659462\n",
      "2021-11-10 16:23:22 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:24 fostool/tools/trainer.py 128 \\ - INFO - On epoch 29, train loss 0.055326384364389906, val loss 0.10478200763463974\n",
      "2021-11-10 16:23:24 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:26 fostool/tools/trainer.py 128 \\ - INFO - On epoch 30, train loss 0.05397724089961426, val loss 0.10089368373155594\n",
      "2021-11-10 16:23:26 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:29 fostool/tools/trainer.py 128 \\ - INFO - On epoch 0, train loss 0.5138632585020626, val loss 0.10824014246463776\n",
      "2021-11-10 16:23:29 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:29 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_e96b_150, current best val loss 0.10824014246463776\n",
      "2021-11-10 16:23:32 fostool/tools/trainer.py 128 \\ - INFO - On epoch 1, train loss 0.38053499016107295, val loss 0.3130846917629242\n",
      "2021-11-10 16:23:32 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:36 fostool/tools/trainer.py 128 \\ - INFO - On epoch 2, train loss 0.21764019175487406, val loss 0.10937432944774628\n",
      "2021-11-10 16:23:36 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:39 fostool/tools/trainer.py 128 \\ - INFO - On epoch 3, train loss 0.15345432784627466, val loss 0.1461467295885086\n",
      "2021-11-10 16:23:39 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:42 fostool/tools/trainer.py 128 \\ - INFO - On epoch 4, train loss 0.12691082133381976, val loss 0.15785612165927887\n",
      "2021-11-10 16:23:42 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:45 fostool/tools/trainer.py 128 \\ - INFO - On epoch 5, train loss 0.11237410032281689, val loss 0.14372441172599792\n",
      "2021-11-10 16:23:45 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:48 fostool/tools/trainer.py 128 \\ - INFO - On epoch 6, train loss 0.10101844414192088, val loss 0.10740474611520767\n",
      "2021-11-10 16:23:48 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:48 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_e96b_150, current best val loss 0.10740474611520767\n",
      "2021-11-10 16:23:51 fostool/tools/trainer.py 128 \\ - INFO - On epoch 7, train loss 0.09920811258694705, val loss 0.12012901902198792\n",
      "2021-11-10 16:23:51 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:54 fostool/tools/trainer.py 128 \\ - INFO - On epoch 8, train loss 0.10443671953444388, val loss 0.14728029072284698\n",
      "2021-11-10 16:23:54 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:56 fostool/tools/trainer.py 128 \\ - INFO - On epoch 9, train loss 0.08669186777928296, val loss 0.16540569067001343\n",
      "2021-11-10 16:23:56 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:23:59 fostool/tools/trainer.py 128 \\ - INFO - On epoch 10, train loss 0.08395930189712375, val loss 0.11080781370401382\n",
      "2021-11-10 16:23:59 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:02 fostool/tools/trainer.py 128 \\ - INFO - On epoch 11, train loss 0.0817267240262499, val loss 0.0766647532582283\n",
      "2021-11-10 16:24:02 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:02 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_e96b_150, current best val loss 0.0766647532582283\n",
      "2021-11-10 16:24:05 fostool/tools/trainer.py 128 \\ - INFO - On epoch 12, train loss 0.07599859114955454, val loss 0.1475212723016739\n",
      "2021-11-10 16:24:05 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:08 fostool/tools/trainer.py 128 \\ - INFO - On epoch 13, train loss 0.0741732326500556, val loss 0.10302296280860901\n",
      "2021-11-10 16:24:08 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:11 fostool/tools/trainer.py 128 \\ - INFO - On epoch 14, train loss 0.07400163146210652, val loss 0.07387924939393997\n",
      "2021-11-10 16:24:11 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:11 fostool/tools/trainer.py 136 \\ - INFO - For model SandwichModel_e96b_150, current best val loss 0.07387924939393997\n",
      "2021-11-10 16:24:14 fostool/tools/trainer.py 128 \\ - INFO - On epoch 15, train loss 0.07383874723432111, val loss 0.13524875044822693\n",
      "2021-11-10 16:24:14 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:17 fostool/tools/trainer.py 128 \\ - INFO - On epoch 16, train loss 0.0668272414774287, val loss 0.15579645335674286\n",
      "2021-11-10 16:24:17 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:20 fostool/tools/trainer.py 128 \\ - INFO - On epoch 17, train loss 0.06536273278442084, val loss 0.17241784930229187\n",
      "2021-11-10 16:24:20 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:23 fostool/tools/trainer.py 128 \\ - INFO - On epoch 18, train loss 0.0625109048742874, val loss 0.12245864421129227\n",
      "2021-11-10 16:24:23 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:26 fostool/tools/trainer.py 128 \\ - INFO - On epoch 19, train loss 0.06062369786348997, val loss 0.19383449852466583\n",
      "2021-11-10 16:24:26 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:29 fostool/tools/trainer.py 128 \\ - INFO - On epoch 20, train loss 0.06076312649483774, val loss 0.19846153259277344\n",
      "2021-11-10 16:24:29 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:32 fostool/tools/trainer.py 128 \\ - INFO - On epoch 21, train loss 0.058027789508010824, val loss 0.16595867276191711\n",
      "2021-11-10 16:24:32 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:36 fostool/tools/trainer.py 128 \\ - INFO - On epoch 22, train loss 0.05941530419330971, val loss 0.18956895172595978\n",
      "2021-11-10 16:24:36 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:39 fostool/tools/trainer.py 128 \\ - INFO - On epoch 23, train loss 0.054702993044081855, val loss 0.20978356897830963\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-11-10 16:24:39 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:42 fostool/tools/trainer.py 128 \\ - INFO - On epoch 24, train loss 0.05351428906707203, val loss 0.16257640719413757\n",
      "2021-11-10 16:24:42 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:43 fostool/tools/trainer.py 128 \\ - INFO - On epoch 0, train loss 0.21396101514498392, val loss 0.1140015572309494\n",
      "2021-11-10 16:24:43 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:43 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_9815_150, current best val loss 0.1140015572309494\n",
      "2021-11-10 16:24:44 fostool/tools/trainer.py 128 \\ - INFO - On epoch 1, train loss 0.1281070665401571, val loss 0.06401525437831879\n",
      "2021-11-10 16:24:44 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:44 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_9815_150, current best val loss 0.06401525437831879\n",
      "2021-11-10 16:24:44 fostool/tools/trainer.py 128 \\ - INFO - On epoch 2, train loss 0.11843011878869113, val loss 0.09412705153226852\n",
      "2021-11-10 16:24:44 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:45 fostool/tools/trainer.py 128 \\ - INFO - On epoch 3, train loss 0.10881302739475288, val loss 0.11178382486104965\n",
      "2021-11-10 16:24:45 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:46 fostool/tools/trainer.py 128 \\ - INFO - On epoch 4, train loss 0.10071408456447077, val loss 0.08489063382148743\n",
      "2021-11-10 16:24:46 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:46 fostool/tools/trainer.py 128 \\ - INFO - On epoch 5, train loss 0.09438328313476899, val loss 0.07125378400087357\n",
      "2021-11-10 16:24:46 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:47 fostool/tools/trainer.py 128 \\ - INFO - On epoch 6, train loss 0.08530109945465536, val loss 0.06170659884810448\n",
      "2021-11-10 16:24:47 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:47 fostool/tools/trainer.py 136 \\ - INFO - For model MLP_Res_9815_150, current best val loss 0.06170659884810448\n",
      "2021-11-10 16:24:47 fostool/tools/trainer.py 128 \\ - INFO - On epoch 7, train loss 0.08007926698408875, val loss 0.08347218483686447\n",
      "2021-11-10 16:24:47 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:48 fostool/tools/trainer.py 128 \\ - INFO - On epoch 8, train loss 0.07463258176165469, val loss 0.06314267218112946\n",
      "2021-11-10 16:24:48 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:49 fostool/tools/trainer.py 128 \\ - INFO - On epoch 9, train loss 0.07070775425025061, val loss 0.10570581257343292\n",
      "2021-11-10 16:24:49 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:49 fostool/tools/trainer.py 128 \\ - INFO - On epoch 10, train loss 0.0676146196384056, val loss 0.07709533721208572\n",
      "2021-11-10 16:24:49 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:50 fostool/tools/trainer.py 128 \\ - INFO - On epoch 11, train loss 0.06498862627674551, val loss 0.08934251219034195\n",
      "2021-11-10 16:24:50 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:50 fostool/tools/trainer.py 128 \\ - INFO - On epoch 12, train loss 0.06121920947642887, val loss 0.13267667591571808\n",
      "2021-11-10 16:24:50 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:51 fostool/tools/trainer.py 128 \\ - INFO - On epoch 13, train loss 0.05887968020111907, val loss 0.11194656044244766\n",
      "2021-11-10 16:24:51 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:51 fostool/tools/trainer.py 128 \\ - INFO - On epoch 14, train loss 0.05664576509711789, val loss 0.17544981837272644\n",
      "2021-11-10 16:24:51 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:52 fostool/tools/trainer.py 128 \\ - INFO - On epoch 15, train loss 0.05351845306508681, val loss 0.13476574420928955\n",
      "2021-11-10 16:24:52 fostool/tools/trainer.py 130 \\ - INFO - ------------\n",
      "2021-11-10 16:24:53 fostool/tools/trainer.py 128 \\ - INFO - On epoch 16, train loss 0.051517159842392975, val loss 0.13112537562847137\n",
      "2021-11-10 16:24:53 fostool/tools/trainer.py 130 \\ - INFO - ------------\n"
     ]
    }
   ],
   "source": [
    "fost.fit()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Predict\n",
    "\n",
    "Predict results using the models trained in the previous step."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-11-10 16:24:54 fostool/task/fusion.py 67 \\ - INFO -    val_loss              model_name\n",
      "1  0.065863      KRNNModel_cdbd_150\n",
      "2  0.045265      KRNNModel_e28a_100\n",
      "3  0.052497        MLP_Res_2ead_100\n",
      "4  0.061707        MLP_Res_9815_150\n",
      "6  0.074821   SandwichModel_9023_50\n",
      "7  0.078380  SandwichModel_c2de_100\n",
      "8  0.073879  SandwichModel_e96b_150\n"
     ]
    }
   ],
   "source": [
    "result = fost.predict()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Plot\n",
    "\n",
    "Display of predicted data.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-11-10 16:24:54 fostool/visualizer/plot.py 66 \\ - INFO - Unspecified lookback_size, use default lookback_size: 250.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fost.plot(result)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Save Pipeline\n",
    "\n",
    "Save the pipeline to  `pipeline_path`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "#save pipeline\n",
    "pipeline_path = fost.save_pipeline()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Predict with saved model\n",
    "\n",
    "## Load Exist Pipeline\n",
    "\n",
    "Load pipeline from  `pipeline_path`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-11-10 16:25:36 fostool/task/config_handler.py 26 \\ - INFO - yaml handler load path: /home/xiaofan/anaconda3/envs/test/lib/python3.8/site-packages/fostool/config/default.yaml\n"
     ]
    }
   ],
   "source": [
    "#load exist pipeline\n",
    "fost = Pipeline(lookahead=lookahead, load_path = pipeline_path)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Predict\n",
    "\n",
    "Predict with test_data, we will predict the `lookahead` 1000 minutes after the end-time point of the test data based on the test data and the previously trained model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-11-10 16:27:32 fostool/dataset/data_utils.py 426 \\ - INFO - 118224 Rows Before Time Reindex.\n",
      "2021-11-10 16:27:32 fostool/dataset/data_utils.py 428 \\ - INFO - 118224 Rows After Time Reindex.\n",
      "2021-11-10 16:27:32 fostool/dataset/data_utils.py 429 \\ - INFO - --------------------\n",
      "2021-11-10 16:27:32 fostool/dataset/data_utils.py 457 \\ - INFO - 118224 Rows Before Fill Missing.\n",
      "2021-11-10 16:27:35 fostool/dataset/data_utils.py 461 \\ - INFO - 118224 Rows After Fill Missing.\n",
      "2021-11-10 16:27:35 fostool/dataset/data_utils.py 462 \\ - INFO - --------------------\n",
      "2021-11-10 16:27:36 fostool/task/fusion.py 67 \\ - INFO -    val_loss              model_name\n",
      "1  0.065863      KRNNModel_cdbd_150\n",
      "2  0.045265      KRNNModel_e28a_100\n",
      "3  0.052497        MLP_Res_2ead_100\n",
      "4  0.061707        MLP_Res_9815_150\n",
      "6  0.074821   SandwichModel_9023_50\n",
      "7  0.078380  SandwichModel_c2de_100\n",
      "8  0.073879  SandwichModel_e96b_150\n"
     ]
    }
   ],
   "source": [
    "test_path  = 'FOST_example_data/Turbine/train.csv'\n",
    "result = fost.predict(test_path=test_path )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Plot\n",
    "\n",
    "Display of predicted data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-11-10 16:27:40 fostool/visualizer/plot.py 66 \\ - INFO - Unspecified lookback_size, use default lookback_size: 250.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fost.plot(result)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
